@echo off
echo 开始安装五月简历管理系统后端...

REM 检查是否安装了 Node.js
where node >nul 2>nul
if %ERRORLEVEL% NEQ 0 (
    echo 未检测到 Node.js，请先安装 Node.js
    exit /b 1
)

REM 检查是否安装了 npm
where npm >nul 2>nul
if %ERRORLEVEL% NEQ 0 (
    echo 未检测到 npm，请先安装 npm
    exit /b 1
)

REM 安装依赖
echo 正在安装依赖...
call npm install

REM 创建 .env 文件
if not exist .env (
    echo 正在创建 .env 文件...
    copy .env.example .env
    
    REM 提示用户修改数据库配置
    echo 请修改 .env 文件中的数据库配置
    set /p DB_HOST=数据库主机 (默认: localhost): 
    set /p DB_PORT=数据库端口 (默认: 3306): 
    set /p DB_NAME=数据库名称 (默认: wuyue_resume): 
    set /p DB_USER=数据库用户名 (默认: root): 
    set /p DB_PASSWORD=数据库密码: 
    
    REM 更新 .env 文件
    if not "%DB_HOST%"=="" (
        powershell -Command "(Get-Content .env) -replace 'DB_HOST=.*', 'DB_HOST=%DB_HOST%' | Set-Content .env"
    )
    
    if not "%DB_PORT%"=="" (
        powershell -Command "(Get-Content .env) -replace 'DB_PORT=.*', 'DB_PORT=%DB_PORT%' | Set-Content .env"
    )
    
    if not "%DB_NAME%"=="" (
        powershell -Command "(Get-Content .env) -replace 'DB_NAME=.*', 'DB_NAME=%DB_NAME%' | Set-Content .env"
    )
    
    if not "%DB_USER%"=="" (
        powershell -Command "(Get-Content .env) -replace 'DB_USER=.*', 'DB_USER=%DB_USER%' | Set-Content .env"
    )
    
    if not "%DB_PASSWORD%"=="" (
        powershell -Command "(Get-Content .env) -replace 'DB_PASSWORD=.*', 'DB_PASSWORD=%DB_PASSWORD%' | Set-Content .env"
    )
    
    REM 生成随机 JWT 密钥
    for /f "delims=" %%a in ('powershell -Command "[guid]::NewGuid().ToString('N')"') do set JWT_SECRET=%%a
    powershell -Command "(Get-Content .env) -replace 'JWT_SECRET=.*', 'JWT_SECRET=%JWT_SECRET%' | Set-Content .env"
)

REM 询问是否初始化数据库
set /p INIT_DB=是否初始化数据库？这将清空现有数据 (y/n): 

if /i "%INIT_DB%"=="y" (
    echo 正在初始化数据库...
    node scripts/initDb.js
)

echo 安装完成！
echo 使用以下命令启动服务器：
echo npm run dev 